using DesktopApp.ViewModels; // For RuleItemViewModel
using System.Collections.Generic;
using System.Threading.Tasks;

namespace DesktopApp.ViewModels.Services
{
    /// <summary>
    /// Defines the contract for processing log text based on a set of rules.
    /// </summary>
    public interface ILogProcessingService
    {
        /// <summary>
        /// Processes the original log text using the provided active rules.
        /// </summary>
        /// <param name="originalLog">The raw log content.</param>
        /// <param name="activeRules">A collection of enabled rules to apply.</param>
        /// <returns>A Task representing the asynchronous operation, containing the processed log text.</returns>
        Task<string> ProcessLogAsync(string originalLog, IEnumerable<RuleItemViewModel> activeRules);

        // Potential future enhancements:
        // - Return a result object with statistics (e.g., lines removed, etc.)
        // - Provide progress reporting for long operations
    }
} 